var mongoose = require('mongoose');
mongoose.set('useFindAndModify', false);//findOneAndUpdate()内部会使用findAndModify驱动，驱动即将被废弃，所以弹出警告在使用mongose时全局设置
var Schema = mongoose.Schema;
var db = require("../config/db")
//用户表
var UserSchema = new Schema({
    name:{type:String},//用户名
    email:{type:String},//邮箱
    sex:{type:String,default:'unknow'},//性别
    birthday:{type:String,default:'0000-00-00'},//生日
    psw:{type:String},//密码
    tel:{type:String,default:'000000000'},//电话号码
    time:{type:Date},//注册时间
    notice:{type:String},//签名
    desc:{type:String,default:'这个人很懒,什么都没有留下'},//简介
    imgurl:{type:String,default:'user.png'}//头像
});
//好友表
var FriendSchema = new Schema({
    userID:{type:Schema.Types.ObjectId,ref:'users'},//用户id
    friendID:{type:Schema.Types.ObjectId,ref:'users'},//好友id
    markname:{type:String},//昵称
    state:{type:Number},//好友状态（0已经好友，1申请中，2表示申请发送方，对方还未同意）
    time:{type:Date},//生成时间
    lasttime:{type:Date},//最后的消息时间（通过这个进行用户好友排序然后再拿出最新的聊天内容）
})
//一对一消息表
var MessageSchema = new Schema({
    userID:{type:Schema.Types.ObjectId,ref:'users'},//用户id
    friendID:{type:Schema.Types.ObjectId,ref:'users'},//好友id
    message:{type:String},//内容
    types:{type:Number},//内容类型（0文本，1图片，2语音......）
    state:{type:String},//消息状态（0已读，1未读）
    time:{type:Date},//发送时间
})
//群表
var GroupSchema = new Schema({
    userID:{type:Schema.Types.ObjectId,ref:'users'},//群主id
    name:{type:String},//群名
    imgurl:{type:String,default:'group.png'},//群头像
    notice:{type:String,default:'该群还未设置任何公告'},//群公告
    time:{type:Date},//创建时间
})
//群成员表
var GroupUserSchema = new Schema({
    groupID:{type:Schema.Types.ObjectId,ref:'groups'},//群id
    userID:{type:Schema.Types.ObjectId,ref:'users'},//用户id
    name:{type:String},//群内名
    tip:{type:Number,default:0},//未读消息数
    time:{type:Date},//加入时间
    shield:{type:Number,default:0},//是否屏蔽群消息（0不屏蔽，1屏蔽）
    lasttime:{type:Date},//最后的消息时间（通过这个进行用户好友排序然后再拿出最新的聊天内容）
})
//群消息表
var GroupMessageSchema = new Schema({
    groupID:{type:Schema.Types.ObjectId,ref:'groups'},//群id
    userID:{type:Schema.Types.ObjectId,ref:'users'},//用户id
    message:{type:String},//内容
    types:{type:Number},//内容类型（0文本，1图片，2语音......）
    time:{type:Date},//发送时间
})

exports.users = db.model('users', UserSchema);
exports.friends = db.model('friends', FriendSchema);
exports.messages = db.model('messages', MessageSchema);
exports.groups = db.model('groups', GroupSchema);
exports.groupusers = db.model('groupusers', GroupUserSchema);
exports.groupmessages = db.model('groupmessages', GroupMessageSchema);

